package com.ttg.web.dao;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ttg.common.dto.TagProducer;
import com.ttg.common.entities.BasePage;
import com.ttg.model.dto.MctDetailDto;
import com.ttg.model.dto.MctGrowAndIntegralSumDto;
import com.ttg.model.dto.VipDetailDto;
import com.ttg.model.pojo.VipGrowDetail;
import com.ttg.model.vo.VipBindAccountDetailVO;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

public interface VipGrowDetailDao extends IService<VipGrowDetail> {
    BasePage<VipGrowDetail> getVipGrowDetail(BasePage<VipGrowDetail> page,VipDetailDto vipDetailDto);

    BasePage<VipGrowDetail> getMctGrowDetail(BasePage<VipGrowDetail> page, MctDetailDto vipDetailDto);

    List<VipBindAccountDetailVO> getVipBindAccountDetail(VipDetailDto vipDetailDto);


    List<VipGrowDetail> getVipDetailByVipIdAndTime(Long vipId,Long mctNo, Long taskId, LocalDate starTime,LocalDate endTime);

    BasePage<VipBindAccountDetailVO> getVipBindAccountDetailPage(BasePage<VipBindAccountDetailVO> page, VipDetailDto vipDetailDto);

    BasePage<VipGrowDetail> getVipIntegralDetail(BasePage<VipGrowDetail> page, VipDetailDto vipDetailDto);

    BasePage<VipGrowDetail> getMctIntegralDetail(BasePage<VipGrowDetail> page, MctDetailDto mctDetailDto);

    List<VipGrowDetail> getVipIntegralDetailByVipId(Long vipId);

    int sumMctGrowAndIntegral(MctGrowAndIntegralSumDto reqDto, TagProducer tagProducer);

    int sumVipGrowAndIntegral(MctGrowAndIntegralSumDto sumDto, TagProducer tagProducer);

    void deleteGrowDetailByDate(Integer localDate);

    void removeByTaskIdAndDate(Long valueOf, Integer nowDate);
}
